.nolist

;>*******************************************************************************************************************************
;*																																*
;*	File:	Neuron.inc																											*
;*																																*
;*																																*
;<*******************************************************************************************************************************

;>*******************************************************************************************************************************
;*																																*
;*	Structure:	Neuron																											*
;*																																*
;*	An object used in the generation of neuron points																			*
;*																																*
;*	Members:																													*
;*	pPoints		- Address of an array of <NeuronPoint> objects; its capacity is MAX_POINTS_PER_NEURON							*
;*	nPoints		- Current number of <NeuronPoint> objects in the array															*
;*	pPathQueue	- Address of the beginning of the path queue, containing pointers into the array of <NeuronPoint>s				*
;*	pQueueHead	- Current address at which points are added to the path queue													*
;*	pQueueTail	- Current address at which points are removed from the path queue												*
;*																																*
;<*******************************************************************************************************************************
Neuron	struct
	pPoints		DWORD	?
	nPoints		DWORD	?
	pPathQueue	DWORD	?
	pQueueHead	DWORD	?
	pQueueTail	DWORD	?
Neuron	ends

;>*******************************************************************************************************************************
;*																																*
;*	Structure:	NeuronPoint																										*
;*																																*
;*	A point with a weight and direction from the previous point, used in the generation of <Neuron>s.							*
;*																																*
;*	Members:																													*
;*	x		- x-coordinate of the point																							*
;*	y		- y-coordinate of the point																							*
;*	z		- z-coordinate of the point																							*
;*	weight	- Weight of the neuron between 0.0 and 1.0																			*
;*	deltaX	- x-parent.x																										*
;*	deltaY	- y-parent.y																										*
;*	deltaZ	- z-parent.z																										*
;*	extra	- (unused; pads the structure to 32 bytes)																			*
;*																																*
;<*******************************************************************************************************************************
NeuronPoint	struct
	x		Real4	?
	y		Real4	?
	z		Real4	?
	weight	Real4	?
	deltaX	Real4	?
	deltaY	Real4	?
	deltaZ	Real4	?
	extra	Real4	?
NeuronPoint	ends

;>*******************************************************************************************************************************
;*																																*
;*	Constants:	Neuron Constants																								*
;*																																*
;*																																*
;*	Members:																													*
;*	MAX_POINTS_PER_NEURON			- Maximum number of points allowed in any one neuron										*
;*	MAX_PATHS_PER_NEURON			- Maximum number of growing paths allowed in any neuron at a time							*
;*	NUM_INITIAL_PATHS_PER_NEURON	- Number of paths to start with in each neuron												*
;*	SPLITTING_THRESHOLD				- Number n such that probability of splitting is n/2^32										*
;*	CUTTING_THRESHOLD				- Weight below which paths are cut off (0.1*WEIGHTS_FACTOR in floating point when used)		*
;*	NUM_ATTEMPT_POINTS				- Number (from 2 to 8) of random points from which to choose minimum.  Lower means more		*
;*	randomness.																													*
;*																																*
;<*******************************************************************************************************************************
MAX_POINTS_PER_NEURON			equ	2048
MAX_PATHS_PER_NEURON			equ	128
NUM_INITIAL_PATHS_PER_NEURON	equ	16
SPLITTING_THRESHOLD				equ	17179869
CUTTING_THRESHOLD				equ	00000000h
NUM_ATTEMPT_POINTS				equ	7


.list